Oculus Quest2 でVideoPlayerを利用したときの不具合、改善点をまとめます
スキップやシークバーを実装して VideoPlayer.timereference 操作した時VideoPlayerがフリーズする
VideoPlayerをシークバーで移動や10秒スキップなど利用した時、VideoPlayerの描画が止まるorタイミングがずれる挙動が発生することがあります
しばらくしたら動き始めますがそのラグが5秒以上発生するため、スキップの挙動を実装するには一度 Stop → Prepare → Start を取るほうが安全かもしれません。 もしくは timereference を利用しない方法を試したほうが良いかもしれません
VideoPlayeable Behaviour を利用したTImeline制御で発生を確認しています。
また、別の問題として次のIssueが発生しています [ANDROID] 現在のフレームから 1 分以上離れた VIDEO PLAYER SEEK フレームを再生すると、PLAYER が頻繁にクラッシュする ※2023/1/5現在
Valkanでパフォーマンスが低下する
Android標準はValkanの利用ですがその場合VideoPlayerを利用するとパフォーマンスが大きく低下することがあります (現在利用バージョン : Unity2021.3.19f1)
ただしこれは360度動画のような非常に解像度が高い動画を再生している場合のみかもしれません。 OpenGL ES3 にするとパフォーマンスが顕著に下がるような問題は出ませんでした
OpenGL 利用時に複数のVideoPlayerを利用すると表示に不具合が出る
以下Forumで解決策が出ていました https://forum.unity.com/threads/videoplayer-android-oculus-problem-cannot-stream-2-different-files.994121/
2ストリームのVideoPlayerを再生時、UnityEditorでは問題ありませんが、Oculusでは2番めのVideoPlayerが1番目のVideoPlayerのRenderTextureを上書きするような挙動が発生。
Turn off Low Overhead Mode (GLES) on Project settings->XR Plug-in Management->Oculus
ProjectSettigns > XR Plug-in Management → Oculus
から Low Overhead Mode(GLES) を無効にすることで問題がなくなりました。
Valkan利用時のパフォーマンス低下からOpenGLに変更するとハマるので注意です。
また、この設定がOFFのときに ProjectSettings → Oculus
に出てくる提案事項の中に
Use Low Overhead Mode
と出てきますが、これをApplyすると設定がONになるため注意が必要です
まとめ
Unity標準のVIdeoPlayerの利用では複雑な問題がでることがわかりました しかし普通に再生する形では問題ないかと思います。
動画中心のアプリケーションを作成する場合には他の手段をとして 外部アセットであるAVPro Unity Asset を利用するほうが良いかもしれません.. https://renderheads.com/products/avpro-video/